#利用keys()函数对字典的键进行整体访问
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
for key in dicAreas.keys():
    print(key)
for key in dicAreas.keys():
    print(key,dicAreas[key])

#遍历字典里面所有的值，利用values()
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
for value in dicAreas.values():
    print(value)#values函数可以找值，但是找不到相对应的键

#遍历字典里面所有的(键，值)，用items()函数
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
for item in dicAreas.items():
    print(item)
for k,v in dicAreas.items():
    print('{}的面积是{}万平方公里。'.format(k,v))#items所提取的条目以元组的形式返回

#字典的排序
dicAreas={'Russia':1707.5,'Canada':997.1,'China':960.1}
a=sorted(dicAreas)#只能对字典中的键排序，不能对其值排序
#可以利用for循环来访问
for i in a:
    print(i,dicAreas[i],end=' ')
print()    

dicAreas={'Russia':1707.5,'Canada':997.1,'China':960.1}
lsVK=[(v,k) for k,v in dicAreas.items()]
lsVK.sort()
lsKV=[(k,v) for v,k in lsVK]
print(lsKV)

#字典的合并
#1.for循环将一个字典遍历到另一个字典中去
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
dicOthers={'美国':936.4,'巴西':854.7}
for k,v in dicOthers.items():
    dicAreas[k]=v
print(dicAreas)    

#2.使用update()函数，将一个字典直接添加到另一个字典中去
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
dicOthers={'美国':936.4,'巴西':854.7}
dicAreas.update(dicOthers)
print(dicAreas)

#3.使用dict()函数，将二个双素序列合并为一个字典
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
dicOthers={'美国':936.4,'巴西':854.7}
ls=list(dicAreas.items())+list(dicOthers.items())
dicAreas=dict(ls)
print(dicAreas)#该方法虽然可以但是复杂度较高

#改进dict()函数方法
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
dicOthers={'美国':936.4,'巴西':854.7}
dicAreas=dict(dicAreas,**dicOthers)
print(dicAreas)
#dict()函数方法可以将2个字典存放到一个新字典
dicAreas={'俄罗斯':1707.05,'加拿大':997.1,'中国':960.1}
dicOthers={'美国':936.4,'巴西':854.7}
d={}
b={}
d=dict(d,**dicAreas)
b=dict(d,**dicOthers)
print(b)
    
